"""
装饰器传递参数:
如果装饰器需要传递参数的话那么就包装了三层，第一层作为接受参数使用
"""


def outer(arg):
    def decorate(fun):
        def wrapper(*args, **kwargs):
            print(arg)
            print(args)
            fun(*args)
            pass

        return wrapper

    return decorate


@outer(10)
def func(x, y):
    print("---------")


func(10, 20)
